// 导入express
const express = require('express')
// 创建服务器实例
const app = express()
//配置解析表单的中间件 post请求会用到
app.use(express.urlencoded({extended:false}))

// 1.创建JSONP接口的注意事项
// 如果项目中已经配置了CORS 跨域资源共享，为了防止冲突，
// 必须在配置CORS中间件之前声明JSONP的接口。否则JSONP接口会被处理成开启了CORS的接口。示例代码如下:

// 2.实现JSONP接口的步骤
// 获取客户端发送过来的回调函数的名字
// 得到要通过JSONP形式发送给客户端的数据
// 根据前两步得到的数据，拼接出一个函数调用的字符串
// 把上一步拼接得到的字符串，响应给客户端的<script>标签进行解析执行

app.get("/api/jsonp", (req, res) =>{
    //1.获取客户端发送过来的回调函数的名字
    const funcName = req.query.callback

    //2.得到要通过JSONP形式发试给客户实的数据
    const data = {name: "lwq", age:22} 

//3.根据前两步得到的数据，拼接出一个函数调用的字符串
const scriptstr = `${funcName}(${JSON.stringify(data)})`

// 4.把上一步拼接得到的字符串，响应给客户端的<script>标签进行解析执行
res.send(scriptstr)
})


//一定要在路由之前，配置 cors 这个中间件，从而解决接口跨域的问题
const cors = require('cors')
app.use(cors())

//导入路由模块
const router = require('./apiRouter.js')

// 把router注册到app上 挂载路径前缀'/api'
app.use('/api',router)

//启动服务器
app.listen(8080,()=>{
    console.log('running at http://127.0.0.1:8080');
})